// 路由鉴权
import router from "@/router";
// 引入进度条方法
import { start , close } from "@/utils/nproress";
// 获取用户信息
import pinia from "@/store";
import useUserStore from "@/store/modules/user";

// 全局前置守卫
router.beforeEach( async (to, from, next) => {
    start()
    // 获取用户token，判断用户登录状态
    let userStore = useUserStore()
    const { token, menuRoutes } = userStore
    // 用户已登录
    if (token) {
        // 不能访问login，跳转首页
        if (to.path === '/login') {
            next({ path: '/' })
        } else {
            // 如果有用户信息放行
            if (menuRoutes.length > 0) next()
            else { // 如果没有用户信息，发送请求获取用户信息再放行
                await userStore.setMenuRoutes()
                next({path: to.fullPath})
            }
        }
    } else { // 用户未登录
        if (to.path === '/login') next()
        else {
            next({ path: '/login', query: { redirect: to.path } })
        }
    }
})
// 全局后置守卫
router.afterEach((to, from) => {
    close()
})
